-- 一.参数列表
-- 1.1优惠卷id
local voucherId=ARGV[1]
-- 1.2用户id
local userId=ARGV[2]


-- 二.数据key
-- 2.1 库存key
local stockKey='seckill:stock:' ..voucherId
-- 2.2.订单key
local orderKey='seckill:order:' ..voucherId

--3.脚本业务
--3.1 判断库存是否充足 get stockKey
local stock=redis.call('get',stockKey)
if(not stock or tonumber(stock)<=0)
    then
    -- 3.2 库存不足
    return 1
end
-- 3.2 判断用户是否已经下单 SISMEMBER orderKey userId
if(redis.call('sismember',orderKey,userId)==1)
    then
    -- 3.3用户已经下单
    return 2
end
-- 3.4 扣减库存
redis.call('incrby',stockKey,-1)
-- 3.5 下单（保存用户到这个set集合） sadd orderKey userId
redis.call('sadd',orderKey,userId)
return 0
